const path = require("path");

console.log(__dirname);
console.log(__filename);
// 获取文件所在的路径
console.log(path.dirname(__filename));
// 获取文件名
console.log(path.basename(__filename, ".js"));
// 获取文件后缀
console.log(path.extname(__filename));

console.log(path.parse(__filename));
console.log(path.resolve("/foo", "/bar", "baz"));

// 将 to 参数解析为绝对路径，给定的路径的序列是从右往左被处理的，后面每个 path 被依次解析，
// 直到构造完成一个绝对路
// path.resolve([from ...], to)
// 示例 1：相对路径解析
console.log(path.resolve("foo", "bar", "baz"));
// 输出: /当前工作目录/foo/bar/baz

// 示例 2：带有绝对路径 有/的就是绝对路径
console.log(path.resolve("/foo", "bar", "baz"));
// 输出: /foo/bar/baz
console.log(path.resolve("/foo", "/bar", "baz"));
// 会返回 /bar/baz。resolve从右向左 遇到/就会停止

// 示例 3：处理 ..  ../表示返回上一级  从baz直接就到了foo
console.log(path.resolve("/foo", "bar", "../baz"));
// 输出: /foo/baz
path.resolve("/foo/bar", "./baz"); // 输出: '/foo/bar/baz'
console.log(path.resolve("/foo/bar/baz", "../../qux"));

// "." 代表当前目录，不影响路径。
console.log(path.resolve("/foo", "zks", ".", "qux"));
// ("/foo/zks/qux");
// 输出: '/foo/qux'
// 示例 4：从当前工作目录解析
console.log(path.resolve("foo"));
// 输出: /当前工作目录/foo
